﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using TS.Bussiness;
using System.Collections.ObjectModel;
using TS.Entities;
using TS.Commons;
using System.Drawing;

namespace Tranco.Views
{
    public partial class SignUp : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack)
            {

                //Load Group User
                GroupBussiness grpB = new GroupBussiness();
                drRole.DataSource = grpB.GetAllGroup();
                drRole.DataValueField = "GroupId";
                drRole.DataTextField = "Name";
                drRole.DataBind();

                drRole.Items.FindByValue("5").Selected = true;

            }

        }

        protected void btnSubmit_Click(object sender, EventArgs e)
        {
            lblStatus.ForeColor = Color.Red;
            if (string.IsNullOrEmpty(txtUser.Text))
            {
                lblStatus.Text = "Username không được trống.";
                return;
            }
            if (txtUser.Text.Length < 3)
            {
                lblStatus.Text = "Username có ít nhất 3 ký tự";
                return;
            }
            if(txtUser.Text.Length > 50)
            {
                lblStatus.Text = "Username không được dài quá 50 ký tự";
                return;
            }

            if (string.IsNullOrEmpty(txtPass.Text) || string.IsNullOrEmpty(txtRepassword.Text))
            {
                lblStatus.Text = "Mật khẩu không được để trống.";
                return;
            }

            if (!string.Equals(txtPass.Text, txtRepassword.Text))
            {
                lblStatus.Text = "Xác nhận mật khẩu sai";
                return;
            }
            if (txtPass.Text.Length < 6)
            {
                lblStatus.Text = "Mật khẩu phải có ít nhất 6 ký tự";
                return;
            }
            if (txtEmail.Text.Length > 100)
            {
                lblStatus.Text = "Email phải ít hơn 100 ký tự";
                return;
            }
            User user = new User();
            try
            {
                user.UserName = txtUser.Text;
                user.Password = CryptographyHelper.HashPassword(txtRepassword.Text);
                user.Email = txtEmail.Text;
                user.Sex = drGen.SelectedItem.Value.ToNumeric();
                user.GroupId = drRole.SelectedItem.Value.ToNumeric();

                UserBussiness userB = new UserBussiness();
                int result =userB.InsertUser(user);
                if (result >= 0)
                {
                    lblStatus.Text = "Thêm tài khoản thành công";
                    lblStatus.ForeColor = Color.Blue;
                }
                else
                {
                    if (result == -2)
                        lblStatus.Text = "Tài khoản đã tồn tại";
                    else lblStatus.Text = "Thêm tài khoản không thành công";
                }
            }
            catch { }
        }
    }
}